home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 8: LINUX Games
/
Linux Cubed Series 8 - LINUX Games.iso
/
games
/
x11
/
rpg
/
crossfir.92
/
crossfir
/
crossfire-0.92.5
/
crossedit
/
App.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-07-24
|
4KB
|
136 lines
/*
CrossEdit, A Editor for CrossFire, A Multiplayer game
for X-windows
Copyright (C) 1993 Jarkko Sonninen & Petri Heinila
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The authors can be reached via e-mail to Jarkko.Sonninen@lut.fi
or Petri.Heinila@lut.fi .
*/
#ifndef _App_h
#define _App_h
#include "Defines.h"
#include "Edit.h"
#include "Cnv.h"
/**********************************************************************/
typedef struct {
Widget w;
char *name;
unsigned long flags;
} ArchFlagsRec;
typedef struct {
Widget w;
unsigned long flags;
unsigned int all:1;
} Arch;
/*
* item to insert
*/
typedef struct {
Widget w; /* ??? */
Widget name; /* name of insrted object */
Widget face; /* inserted object looks like this */
Edit edit; /* cloned object comes from this Edit */
object *clone; /* clone this object */
int wall_set; /* if wall use this set */
mapstruct *wall_map; /* if wall use this Map */
} Item;
/*
* Item or area to look about
*/
typedef struct {
Widget w; /* ??? */
Widget info; /* ??? */
Widget menu; /* ??? */
Edit edit; /* last selected area fro this editor */
XRectangle rect; /* rectangle over selected area */
} Look;
/*
* Application Resources. Some can be setted by command line flags
*/
typedef struct {
Dimension mapWidth; /* maximum width of shown map */
Dimension mapHeight; /* maximum height of shown map */
Boolean usePixmaps; /* use pixmaps instead fonts */
Boolean useColorPixmaps; /* use color pixmaps instead fonts */
String cmdCrossfire; /* to run crossfire */
String cmdReset; /* to run reset on crossfire */
String cmdGoto; /* to run goto on crossfire */
String creator; /* user configurable own name */
String email; /* user configurable internet address */
} AppRes;
/*
* Application domain data
*/
struct _App {
Display *display; /* user in this display */
Widget shell; /* application level shell widget */
Edit edit; /* list ofmap editors */
Edit clip; /* clipboard (editor) */
unsigned int clipon:1; /* is clipboard up */
Look look; /* look part in application dialog */
Arch arch; /* archetype list in application dialog */
Item item; /* insertion item part in application dialog */
CnvPath path; /* file selector */
AppRes res; /* application resources */
Attr attr; /* to edit objects attributes */
CnvFiles picks; /* pick some objects */
CnvFiles walls; /* pick some walls */
CnvFiles infof; /* documentation files */
CnvBrowse info; /* to show docs */
};
extern Pixmap *pixmaps; /* list of pixmaps */
/*
* Macro interface
*/
#define AppItemGetEdit(a) ((a)->item.edit)
#define AppItemGetMap(a) ((a)->item.wall_map)
#define AppItemGetWall(a) ((a)->item.wall_set)
#define AppItemGetObject(a) ((a)->item.clone)
#define AppItemNoWall -1
/*
* Function interface
*/
extern App AppCreate ( XtAppContext appCon, String displayString, XtResource resources[], Cardinal resourcesNum, XrmOptionDescRec *options, Cardinal optionsNum, int *argc, char *argv[] );
extern void AppDestroy ( App self );
extern void AppUpdate ( App self );
extern void AppSelectSet ( App self, Edit edit, XRectangle rect );
extern void AppSelectUnset ( App self );
extern void AppItemSet ( App self, Edit edit, object *obj, int wallSet );
extern char PixelFromAlias ( char *name );
extern void InitializeColors ( Display *dpy );
extern Edit AppEditInsert ( App self, String path, EditType type );
extern void AppEditAttach ( App self, Edit edit );
extern void AppEditDeattach ( App self, Edit edit );
#endif /* _App_h */